package com.gengzp.ops.mapper;

import com.gengzp.common.model.database.entity.SysTable;
import com.gengzp.common.model.database.req.PageSysTableReq;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName SysTableMapper
 * @Description 系统表设计mapper层接口
 * @Author gengzp
 * @Date 2025/7/8 13:41
 */
@Mapper
public interface SysTableMapper {

    /**
     * 根据编码或名称查询系统表设计信息
     *
     * @param sysTableCode 系统表编码
     * @param sysTableName 系统表名称
     * @return 系统表设计信息列表
     */
    List<SysTable> selectSysTableByCodeOrName(@Param("sysTableCode") String sysTableCode,
                                              @Param("sysTableName") String sysTableName);

    /**
     * 根据id查询系统表设计信息
     *
     * @param id 系统表设计信息id
     * @return 系统表设计信息
     */
    SysTable selectSysTableById(@Param("id") Long id);

    /**
     * 分页查询系统表设计信息
     *
     * @param req 分页查询表设计请求实体
     * @return 系统表设计信息列表
     */
    List<SysTable> pageQuerySysTable(PageSysTableReq req);

    /**
     * 插入一条系统表设计信息
     *
     * @param sysTable 系统表设计信息
     */
    void insertSysTable(SysTable sysTable);

    /**
     * 根据id编辑系统表设计信息
     *
     * @param sysTable 系统表设计信息
     */
    void updateSysTableById(SysTable sysTable);

    /**
     * 根据id删除系统表设计信息
     *
     * @param id 系统表设计信息id
     */
    void deleteSysTableById(@Param("id") Long id);

}
